package com.enjoyor.soa.traffic.frame.support.mybatis.page;

public class MySQLDialect extends Dialect {

    @Override
    public String getLimitString(String sql, int offset, int limit) {
        return getLimitString(sql, offset, Integer.toString(offset), Integer.toString(limit));
    }

    /**
     * 将sql变成分页sql语句，提供offest及limit使用占位符号(placeholder)替换. 如mysql
     * dialect.getLimitString("select * from user", 12, ":offset",0,":limit")
     * 将返回 select * from user limit :offset,:limit
     *
     * @param sql
     *            实际SQL语句
     * @param offset
     *            分页开始纪录条数
     * @param offsetPlaceholder
     *            分页开始纪录条数－占位符号
     * @param limitPlaceholder
     *            分页纪录条数占位符号
     * @return 包含占位符的分页sql
     */
    public String getLimitString(String sql, int offset, String offsetPlaceholder, String limitPlaceholder) {
        StringBuilder stringBuilder = new StringBuilder(sql);
        stringBuilder.append(" limit ");
        if (offset > 0) {
            stringBuilder.append(offsetPlaceholder).append(",").append(limitPlaceholder);
        } else {
            stringBuilder.append(limitPlaceholder);
        }
        return stringBuilder.toString();
    }

}
